|
|
|
|
|
|
|
dependence on a particular vendor is to seek out competitors and have a backup in case of vendor failure. Check the vendor's financial health if information is available and the risks warrant it. Because you're using object-oriented programming techniques, create facades or wrappers around the control, even if it is the kind of control that you place on a form; you can always pass a well-developed control by reference to form controllers for further processing. If the control doesn't have a nicely exposed interface so that you can pass it to controllers, avoid it. |
|
|
|
|
|
|
|
|
Pricing Components Versus In-House Component Development |
|
|
|
|
|
|
|
|
As mentioned earlier, organizations and individuals seek a return on investment in acquiring third-party controls and components. If you're developing state-of-the-art applications at home that will make you millions of dollars, it's possible you're not going to worry about costs. However, organizations want a return on investment. They look at industry magazine reviews for any mention of potential man-hour savings. They review the average number of hours it took to develop (or try to develop) similar code in-house. In more wary organizations, they might check out the competition to see whether their peers have effectively implemented such controls at a reasonable cost. |
|
|
|
|
|
|
|
|
In his book Software Reuse, Ivar Jacobsonthe pioneer of use casesmentions some ways that organizations can assess the cost and return on investment of software components to be reused. For organizations to achieve reusability with third-party controls as a way to obtain a return on investment, organizations must pay up-front costs to |
|
|
|
|
|
|
|
|
Assess the applications with which to achieve reuse. |
|
|
|
|
|
|
|
|
Properly define the application's architecture so that the component has a role to play within it. |
|
|
|
|
|
|
|
|
Reorganize, when necessary, the domain that will use the application so as to optimize the usefulness of the application and the components in it. |
|
|
|
|
|
|
|
|
Make sure all project teams are aware of (and trained in) the control or component being evaluated or implemented so that all opportunities for reuse are available. |
|
|
|
|
|
|
|
|
Figure 7.1 shows a graph that Jacobson uses to explain the cost factor in return on investment. The figure has been specifically adapted to the case of third-party controls and components. Keep in mind that, as Jacobson mentions, it will typically cost you much more money to develop a control or component in-house for reusability than to create it for one-time use on a particular project. Buying well-designed third-party controls can mitigate these costs, but they must be reused several times to achieve a desired return on investment. |
|
|
|
|
|